@import '../base/grid-settings';
@import 'neat/neat'; // lib - Neat

.header-global {
  @extend %ui-depth1;

  border-bottom: 1px solid $header-border-color;
  box-shadow: 0 1px 5px 0 $shadow-l1;
  background: $header-bg;
  position: relative;
  width: 100%;
  height: 76px;

  .wrapper-header {
    @include clearfix();

    height: 40px;
    margin: 0 auto;
    padding: 18px ($baseline/2) 0;
    max-width: grid-width(12);
  }

  .logo-header {
    display: inline;
  }

  .logo {
    @include float(left);
    @include margin(-2px, 39px, 0, 0);

    position: relative;

    a {
      display: block;
    }
  }

  nav {
    @include clearfix();

    height: 40px;
    margin: 0 auto;
    padding: 18px ($baseline/2) 0;
    max-width: grid-width(12);
  }

  .left {
    @include float(left);
  }

  .guest {
    @include float(right);
  }

  > li {
    display: inline-block;
    margin-right: $baseline;
    position: relative;
    vertical-align: middle;

    &:last-child {
      margin-right: 0;
    }

    a {
      letter-spacing: 1px;
      vertical-align: middle;
    }
  }

  li.secondary {
    > a {
      color: $link-color;
      font-family: $font-family-sans-serif;
      display: inline-block;
      margin: 0 ($baseline*1.5) 0 0;
      text-decoration: none;
      text-shadow: 0 1px rgba(255, 255, 255, 0.6);

      &:last-child {
        margin-right: 0;
      }

      &:hover,
      &:focus {
        color: $body-color;
      }
    }
  }

  .primary {
    margin-right: ($baseline/4);

    > a {
      @include background-image($button-bg-image);

      background-color: $button-bg-color;
      box-sizing: border-box;
      box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.6);
      color: $body-color;
      display: inline-block;
      font-family: $font-family-sans-serif;
      line-height: 1em;
      margin: 1px 5px;
      padding: 10px 12px;
      text-decoration: none;
      text-shadow: 0 1px rgba(255, 255, 255, 0.6);
      vertical-align: middle;

      &:last-child {
        margin-right: 0;
      }

      &:hover,
      &:focus,
      &:active {
        background: $button-bg-hover-color;
      }
    }
  }

  .user {
    @include float(right);

    @extend %ui-print-excluded;

    padding-left: 0;
    margin: 0;

    .settings-language-form {
      margin: 4px;

      .language-selector {
        width: 120px;
      }
    }

    > .primary {
      display: block;

      @include float(left);

      margin: 0;
      position: relative;

      > a {
        margin: 0;
        background-image: none;
      }

      &:last-child {
        > a {
          padding: ($baseline/2);

          &.shopping-cart {
            border-radius: 4px;
            border: 1px solid $border-color-2;

            @include margin-right(10px);

            padding-bottom: 6px;
          }
        }
      }
    }

    .user-link {
      padding: 0;
      position: relative;
      text-transform: none;
      font-size: 14px;
      font-weight: bold;
      letter-spacing: 0;

      .user-image-frame {
        margin: 0;
        padding: 0;
        max-width: ($baseline*2);
        border-radius: 10%;
      }

      .icon {
        display: inline-block;

        @include float(left);
        @include margin(2px, 6px, -3px, 3px);

        font-size: 1.2em;
        color: $m-gray;
      }

      .label-username {
        @include float(right);
        @include margin(($baseline*0.75), ($baseline/4), ($baseline*0.75), ($baseline*0.75));
      }
    }

    .user-dropdown,
    .dropdown {
      font-size: $body-font-size;
      padding: ($baseline/4) ($baseline/2);
      color: $body-color;
      border: none;
      background: $white;
      box-shadow: none;
      text-shadow: none;
    }

    .user-dropdown-menu,
    .dropdown-menu {
      background: $white;
      border-radius: 4px;
      box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.3);
      border: 1px solid $gray-l3;
      display: none;
      margin-top: 0;
      padding: 5px 10px;
      position: absolute;

      @include right(0);

      top: 37px;
      min-width: 120px;
      z-index: 3;

      &.expanded {
        display: block;
      }

      &::before {
        background: transparent;
        border: {
          top: 6px solid $border-color-4;
          right: 6px solid $border-color-4;
          bottom: 6px solid transparent;
          left: 6px solid transparent;
        }

        box-shadow: 1px 0 0 0 $gray-l3, 0 -1px 0 0 $gray-l3;
        content: "";
        display: block;
        height: 0;
        position: absolute;

        @include transform(rotate(-45deg));
        @include right(7px);

        top: -5px;
        width: 0;
      }

      li {
        display: block;
        border-top: 1px dotted $border-color-2;
        box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.05);

        &:first-child {
          border: none;
          box-shadow: none;
        }

        > a {
          border: 1px solid transparent;
          border-radius: 3px;
          box-sizing: border-box;
          color: $link-color;
          cursor: pointer;
          display: block;
          margin: 5px 0;
          overflow: hidden;
          padding: 3px 5px 4px;
          text-overflow: ellipsis;

          @include transition(padding 0.15s linear 0s);

          white-space: nowrap;
          width: 100%;

          &:hover,
          &:focus {
            color: $body-color;
            text-decoration: none;
          }
        }
      }
    }
  }

  .nav-global {
    margin-top: ($baseline/2);
    list-style: none;

    @include float(left);

    .tab-nav-item {
      display: flex;
      margin: 0;
      text-transform: none;

      @include float(left);

      justify-content: center;

      .tab-nav-link {
        font-size: em(16);
        color: $gray;
        padding: 5px 25px 23px;
        display: inline-block;

        &:hover,
        &:focus {
          border-bottom: 4px solid $courseware-border-bottom-color;
        }
      }

      .active {
        border-bottom: 4px solid $black-t3 !important;
      }
    }

    li,
    div {
      display: inline-block;
      margin: 0 $baseline+1 0 0;
      font-size: em(14);
      font-weight: 600;
      letter-spacing: 0 !important;

      &:last-child {
        margin-right: 0;
      }

      a {
        display: block;
        padding: ($baseline/4);
        color: $link-color;
        font-weight: 600;

        &:hover,
        &:focus,
        &:active {
          text-decoration: none;
          color: $link-color;
        }
      }

      &.active {
        a {
          text-decoration: none;
          color: $link-color;
        }
      }
    }
  }

  .nav-courseware {
    @include float(right);

    list-style: none;

    li,
    div {
      display: inline-block;

      .btn {
        @extend %m-btn-primary;
      }
    }
  }
}

// marketing site design syncing
.view-register,
.view-login,
.view-passwordreset {
  .header-global nav {
    width: 960px;
  }
}

// page-based nav states
.view-howitworks .nav-global-01,
.view-courses .nav-global-02,
.view-schools .nav-global-03,
.view-register .nav-global-04 {
  a {
    text-decoration: none;
    color: $link-color !important;
  }
}

// edX theme: Global Header
// ====================

// CASE: marketing/course discovery
.header-global-new {
  @extend %ui-depth1;

  /* Temp. fix until applied globally */
  box-sizing: border-box;
  position: relative;
  width: 100%;
  border-bottom: 1px solid $gray-l1;
  box-shadow: 0 1px 5px 0 $shadow-l1;
  background: $header-bg;

  .wrapper-header {
    @include clearfix();

    box-sizing: border-box;
    height: 74px;
    margin: 0 auto;
    padding: 17px 0;
    max-width: grid-width(12);

    &:not(.rwd) {
      min-width: grid-width(9);
    }
  }

  .logo {
    @include float(left);

    margin: -2px 39px 0 10px;
    position: relative;

    a {
      display: block;
    }
  }

  .nav-global {
    @include float(left);

    .tab-nav-item {
      display: flex;
      margin: 0;
      text-transform: none;

      @include float(left);

      justify-content: center;

      .tab-nav-link {
        font-size: em(16);
        color: $gray;
        display: inline-block;
        padding: 5px 25px 19px;

        &:hover,
        &:focus {
          border-bottom: 4px solid $courseware-border-bottom-color;
        }
      }

      .active {
        border-bottom: 4px solid $black-t3 !important;
      }
    }
  }

  .logo-header {
    display: inline;
  }

  .nav-account-management {
    margin: 0 auto;
    display: inline;
  }

  .guest {
    @include float(right);
  }

  > li {
    display: inline-block;
    margin-right: $baseline;
    position: relative;
    vertical-align: middle;

    &:last-child {
      margin-right: 0;
    }

    a {
      vertical-align: middle;
    }
  }

  li.secondary {
    > a {
      color: $link-color;
      font-family: $font-family-sans-serif;
      display: inline-block;
      margin: 0 ($baseline*1.5) 0 0;
      text-decoration: none;
      text-shadow: 0 1px rgba(255, 255, 255, 0.6);

      &:last-child {
        margin-right: 0;
      }

      &:hover,
      &:focus {
        color: $body-color;
      }
    }
  }

  .primary {
    @include margin-right(5px);

    > a {
      @include background-image($button-bg-image);

      background-color: $button-bg-color;
      box-sizing: border-box;
      box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.6);
      color: $body-color;
      font-family: $header-sans-serif;
      display: inline-block;
      line-height: 1em;
      margin: 1px 5px;
      padding: 10px 12px;
      text-decoration: none;
      text-shadow: 0 1px rgba(255, 255, 255, 0.6);
      vertical-align: middle;

      &:last-child {
        @include margin-right(0);
      }

      &:hover,
      &:focus,
      &:active {
        background: $button-bg-hover-color;
      }
    }
  }

  .user {
    @include float(right);

    margin-top: 0;

    > .primary {
      display: block;

      @include float(left);

      margin: 0;
      position: relative;

      > a {
        margin: 0;

        @include border-right-radius(0);

        background-image: none;
      }

      &:last-child {
        > a {
          @include border-radius(0, 4px, 4px, 0);
          @include border-left(none);

          padding: ($baseline/2) ($baseline/2);

          &.shopping-cart {
            border-radius: 4px;
            border: 1px solid $border-color-2;
            margin-right: ($baseline/2);
            padding-bottom: 6px;
          }
        }
      }
    }

    .user-link {
      padding: 0;
      position: relative;
      text-transform: none;
      font-size: 14px;
      font-weight: bold;
      letter-spacing: 0;

      .user-image-frame {
        max-width: ($baseline*2);
        border-radius: 10%;
      }

      .icon {
        display: inline-block;

        @include float(left);
        @include margin(2px, 6px, -3px, 3px);

        font-size: 1.2em;
        color: $m-gray;
      }

      .label-username {
        @include float(right);
        @include margin(($baseline*0.75), ($baseline/4), ($baseline*0.75), ($baseline*0.75));
      }
    }

    .user-dropdown,
    .dropdown {
      font-size: $body-font-size;
      padding: ($baseline/5) ($baseline/2);
      color: $body-color;
      border: none;
      background: $white;
      box-shadow: none;
      text-shadow: none;
    }

    .user-dropdown-menu,
    .dropdown-menu {
      background: $border-color-4;
      border-radius: 4px;
      box-shadow: 0 2px 24px 0 rgba(0, 0, 0, 0.3);
      border: 1px solid $border-color-3;
      display: none;
      margin-top: 0;
      padding: 5px 10px;
      position: absolute;

      @include right(0);

      top: 34px;
      width: 170px;
      z-index: 3;

      &.expanded {
        display: block;
      }

      &::before {
        background: transparent;
        border: {
          top: 6px solid $border-color-4;
          right: 6px solid $border-color-4;
          bottom: 6px solid transparent;
          left: 6px solid transparent;
        }

        box-shadow: 1px 0 0 0 $border-color-3, 0 -1px 0 0 $border-color-3;
        content: "";
        display: block;
        height: 0;
        position: absolute;

        @include transform(rotate(-45deg));
        @include right(7px);

        top: -6px;
        width: 0;
      }

      li {
        display: block;
        border-top: 1px solid $gray-l3;
        box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.05);

        &:first-child {
          border: none;
          box-shadow: none;
        }

        > a {
          border: 1px solid transparent;
          border-radius: 3px;
          box-sizing: border-box;
          color: $link-color;
          cursor: pointer;
          display: block;
          margin: 5px 0;
          overflow: hidden;
          padding: 3px 5px 4px;
          text-overflow: ellipsis;

          @include transition(padding 0.15s linear 0s);

          white-space: nowrap;
          width: 100%;

          &:hover,
          &:focus {
            color: $body-color;
            text-decoration: none;
          }
        }
      }
    }
  }

  .nav-courseware {
    @include float(right);

    div {
      display: inline-block;
      letter-spacing: 0 !important;
      position: relative;
      margin-right: $baseline/2;

      a {
        &.nav-courseware-button {
          border: 3px solid $courseware-button-border-color;
          border-radius: 5px;
          margin-top: -22px;

          &:hover,
          &:focus,
          &:active {
            border-color: $courseware-navigation-color;
          }

          .view-login &:hover,
          &:focus,
          &:active {
            border-color: $courseware-button-border-color;
          }
        }
      }
    }
  }

  &.rwd {
    .wrapper-header {
      width: 320px;
    }

    .mobile-menu-button {
      @include float(left);

      display: inline;
      text-decoration: none;
      color: $m-gray;
      font-size: 18px;
      margin-top: 9px;

      &:hover,
      &:active,
      &:focus {
        text-decoration: none;
      }
    }

    .logo {
      position: absolute;
      top: 20px;

      @include left(calc(50% - 90px));

      width: 54px;

      img {
        width: 54px;
      }
    }

    .nav-global,
    .nav-courseware {
      a {
        font-size: 14px;

        &.nav-courseware-button {
          text-align: center;
          margin-top: -3px;
        }
      }
    }

    .nav-global,
    .nav-courseware-01 {
      display: none;
    }

    .nav-global {
      position: absolute;
      top: 73px;
      left: calc(50% - 160px);
      z-index: 1000;
      width: 320px;
      background: $m-blue-d3;

      &.show {
        display: inline;
      }

      a {
        color: white;
        padding: 10px;
        font-weight: 400;

        &:hover,
        &:focus {
          background: $m-blue-d5;
          color: white;
          border-bottom: none;
        }
      }

      li {
        display: block;
        border-bottom: 1px solid $m-blue-d5;
      }
    }

    .nav-courseware {
      display: inline;

      div:last-child {
        margin-right: 0;
      }
    }

    @include media($edx-bp-large) {
      .wrapper-header {
        width: 100%;
        min-width: 800px;
      }

      .mobile-menu-button {
        display: none;
      }

      .logo {
        position: relative;
        top: 0;

        @include left(0);

        width: auto;

        img {
          width: auto;
        }
      }

      .nav-global {
        display: inline;
        position: relative;
        z-index: auto;
        width: auto;
        top: auto;
        left: auto;
        background: inherit;

        a {
          color: $courseware-navigation-color;
          padding: 3px 10px;
          font-weight: 600;

          &:hover,
          &:focus {
            background: inherit;
            color: $courseware-hover-color;
          }
        }

        li {
          display: inline-block;
          border-bottom: none;
        }
      }

      .nav-courseware {
        div:last-child {
          margin-right: ($baseline/2);
        }
      }

      .nav-courseware-01 {
        display: inline-block;
      }

      .desktop-hide {
        display: none !important;
      }
    }

    @include media($edx-bp-huge) {
      .wrapper-header {
        padding: 17px 0;
      }
    }
  }
}

// marketing site design syncing
.view-register,
.view-login {
  .header-global nav {
    width: 960px;
  }
}

// page-based nav states
.view-howitworks .nav-global-01,
.view-courses .nav-global-02,
.view-schools .nav-global-03,
.view-register .nav-global-04 {
  a {
    text-decoration: none;
    color: $link-color !important;
  }
}

.doc-link {
  @include float(right);
  @include margin(($baseline*0.75), ($baseline*0.75), ($baseline*0.75), ($baseline*0.75));

  font-size: 14px;
  font-weight: bold;
  color: $body-color;

  &:visited {
    color: $body-color;
  }
}

.page-header {
  padding: $baseline;
  border-bottom: 1px solid $border-color-2;
}
